Providing Digital Content Based On Expected User Behavior

ABSTRACT

In a computing system, information regarding a plurality of events that use a computing device is obtained, and a time-dependant increase in activity for each of at least some of the events is identified. An observed interest by a user in an event is correlated with an identified increase in activity for the event. Information about the activity at a time related to the event is provided for review by the user.

CROSS REFERENCE TO RELATED APPLICATION

This application is a continuation application of, and claims priorityto, pending U.S. patent application Ser. No. 12/277,432, filed on Nov.25, 2008, entitled “Providing Digital Content based on Expected UserBehavior”. The disclosure of the foregoing application is incorporatedherein by reference in its entirety.

TECHNICAL FIELD

This disclosure relates to providing digital content based on predictivedeterminations that are made in response to observations of userbehavior.

BACKGROUND

As the speed of computing devices has increased, so have the demandsthat users of the devices place on them. Also, advancements insemiconductor design have led to smaller devices that consume lesspower, making it more practical for users to carry such computingdevices with them throughout the day. For example, users of mobilecomputing devices, such as cellular phones, portable email devices,smartphones, and personal digital assistants, may demand that a singleportable device be capable of performing multiple functions, and mayexpect to use the device for various tasks as they go about their dailylives.

Mobile devices may be used to request information such as stock quotes,movie listings, or driving directions, and may receive the informationfrom one or more external servers, to which the devices may becommunicably connected over a network. The external servers may providethe information to the mobile devices, which may then present theinformation to the mobile device users. Other presented information caninclude search results in response to a search request from the user.

In one example, a single mobile device may be used for placing orreceiving phone calls, checking emails, viewing video data, listening toaudio data, text messaging, and browsing the Internet. In some examples,the mobile device can also be used to perform a business transaction,such as purchasing a sandwich in a local restaurant. For example, a userof the mobile device may dial a specific number to initiate a monetarytransfer from a user account to a restaurant account.

SUMMARY

Methods and systems are described for providing digital content based onpredictive determinations that are made in response to observations ofuser behavior.

In a first general aspect, a computer-implemented method includesobtaining information regarding a plurality of events that use acomputing device, and identifying a time-dependant increase in activityfor each of at least some of the events. The method also includescorrelating an observed interest by a user in an event with anidentified increase in activity for the event. The method furtherincludes providing, for review by the user, information about theactivity at a time related to the event.

In various implementations, the events may be selected from a groupconsisting of a television program, a movie, a shopping transaction, anda musical song. Identifying the time-dependant increase in activity foreach of the events may include analyzing search requests related to theevent. Identifying the one or more time-dependant increases in activityfor each of the events may include identifying a location, oridentifying a sales transaction. The observed interest by the user mayinclude a received user profile, or an inferred user profile. The one ormore time-dependant increases in activity for the event may relate totiming of a transaction. Correlating an observed user interest mayinclude supplementing information about the time-dependent increase inactivity with data from an user identifying an explicit user preferencefor information about the activity. The method may further includecorrelating the observed interest by the user in the event withinformation reflecting occurrences of first non-user-specific eventshaving an event type, and providing the information about the activityupon the occurrence of a non-user-specific event having the event type.The method may further include identifying a lack of correlation betweenthe observed interest of the user and second non-user-specific events,and identifying the information based on a combination of thecorrelation and the lack of correlation.

In a second general aspect, a recordable media having recorded andstored thereon instructions that when executed on a computing deviceperform actions, including obtaining information regarding a pluralityof events that use a computing device, and identifying a time-dependantincrease in activity for each of at least some of the events. Theperformed actions also include correlating an observed interest by auser in an event with an identified increase in activity for the event,and providing, for review by the user, information about the activity ata time related to the event.

In various implementations, the events may be selected from a groupconsisting of a television program, a movie, a shopping transaction, anda musical song. Identifying the time-dependant increase in activity foreach of the events may include analyzing search requests related to theevent. Identifying the one or more time-dependant increases in activityfor each of the events may include identifying a location associatedwith each of the events.

In a third general aspect, a computer-implemented method includesobtaining information regarding a plurality of user-specific eventscorresponding to a computing device, and correlating the user-specificevents with one or more non-user-specific events. The method alsoincludes identifying an interest by a user of the device with one ormore of the non-user-specific events using the information regarding theplurality of user-specific events, and providing, for review by theuser, information about a future non-user-specific activity using theidentified interest.

In various implementations, the information may include promotionalinformation for the non-user-specific activity, or promotionalinformation for an entity in a geographic vicinity of thenon-user-specific activity.

In a fourth general aspect, a computer-implemented system includes afirst interface arranged to gather information regarding a plurality ofevents corresponding to a mobile computing device. The system alsoincludes an observation module to identify a time-dependant increase inactivity for each of at least some of the events, and a predictionmodule to correlate an observed interest by a user in an event with anidentified increase in activity for the event. The system furtherincludes a second interface arranged to provide, for review by the user,information about the activity at a time related to the event.

In various implementations, the events may be selected from a groupconsisting of a television program, a movie, a shopping transaction, anda musical song. Identifying the time-dependant increase in activity foreach of the events may include analyzing search requests related to theevent. Identifying the one or more time-dependant increases in activityfor each of the events may include identifying a location associatedwith each of the events.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features,objects, and advantages will be apparent from the description anddrawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a schematic diagram showing maps of exemplary time-relatedroutes.

FIGS. 2A-2B are timing diagrams showing examples of events and theiroccurrences with respect to time.

FIG. 3 shows examples of user information provided based on time-relateduser data.

FIG. 4 is an exemplary set diagram that includes two information setsand their intersection.

FIG. 5 is a schematic diagram of a system that can be used to presenttime-related user information.

FIG. 6 is a schematic diagram of a wireless communication handset forgenerating requests and receiving user information.

FIG. 7 is a flow chart of an exemplary method that can be performed by asystem for presenting time-related information.

FIG. 8 shows example operations between a client and a server to providetime-related target information.

FIG. 9 shows an example of a generic computer device and a genericmobile computer device.

Like reference symbols in the various drawings indicate like elements.

DETAILED DESCRIPTION

Users of computing devices, such as a computer connected to theInternet, a mobile device (e.g., cellular phone, smartphone, or personaldigital assistant (PDA) communicably connected to a network), apositioning device (e.g., global positioning system (GPS) device, whichmay be part of a mobile device), or an interactive video delivery systemmay tend to perform some activities in regular or semi-regular ways. Tovarious degrees, the users may tend to live fairly structured lives,where they may perform some recurring or semi-recurring actions, or mayengage in recurring or semi-recurring activities or events. Theseactions, activities, or events may tend to recur over various timeperiods (e.g., within a minute, within an hour, over several hours,during the course of a day, over a few days, a week, a month, a year, orover multiple years, etc.). For example, a user may generally drive fromhome to work each weekday and may return home from work in theafternoon. Though occasionally the user may depart from this routine,such as by carpooling, taking a vacation or sick day, riding the bus,etc., in general, the user may typically follow the daily routine ofdriving to and from work. In other examples, a user may tend to golf,cycle, or go boating each weekend, attend a club meeting the firstTuesday of each month, or wash the car almost every Saturday morning.

Some activities may recur at particular intervals, such as each weekendor on one or more particular days of the week or month, but mayadditionally be correlated to another time interval, such as a season.For example, a golfer may tend to play golf at a local golf course (orone of several local courses, e.g.) each weekend (or many or mostweekends) during the spring, summer, and fall seasons, but may tend topractice instead at an indoor driving range on weekends during thewinter. In another example, a user may engage in activities that recuron an annual basis, bi-annual basis, or some other long-term recurringschedule. For example, the user may travel to visit family duringThanksgiving each year. In another example, a group of six couples mayenjoy a tradition of getting together once every six months for dinner,drinks, and fellowship, and may alternate hosting the event such thateach couple hosts an event once every three years. The systems, devicesand methods described herein discuss using these tendencies toanticipate future actions and provide information, such as digitalcontent delivered to the user's mobile computing device, that may beuseful to the user.

While users are performing these activities, or at some time before orafter performing the activities, the users may interact with theirmobile or other computing devices. When these interactions occur, asystem in communication with the mobile or other computing device maygather or otherwise obtain information related to the activities orevents. In some cases, such information may be obtained based on acommunication initiated by the user of the mobile device, such as arequest for information, a selection, a command, an initiation of atransaction, and the like. Also, the system can obtain information notspecifically related to a communication with the user (e.g., time ofday, day of the week, season, calendar information, regionalinformation, worldwide, national or local news or event information,alerts, warnings, and the like). This information may be obtained, forexample, from a digital storage location within or outside the system,including information stored on a computing system communicably coupledto a communication network, such as a LAN, WAN, or the computers andnetworks that comprise the Internet.

The system may store the information, and may associate the informationwith a timestamp or other indication of when the interaction occurred orwhen the information was obtained. Such indications can be used todetermine patterns of activity and can be referenced to assess whetherinformation is current or dated. The system may use the collectedinformation to identify a time-dependent increase in activity for atleast some of the events. In some cases, increases in activity mayindicate that the user is becoming more inclined to partake in the eventor similar events, and may portend an increasing likelihood that theuser may similarly partake in the future. In some cases, increases inactivity may indicate a generalized increase in popularity of aparticular action, event, or phenomenon, independent of specific userindications. The system may then correlate an observed interest by theuser in an event with an identified increase in activity for the event,and may provide information about the activity to the user for review.In this fashion, a user may conveniently receive information that may beof use to the user without having to specifically or generally requestsuch information.

In various implementations, the systems, devices, and methods describedhere can be used to learn user tendencies by observing external signals,and can be used to predict future user actions. In some implementations,appropriate digital content may be provided based on the user tendenciesor predicted user actions. External signals that can be observed includeuser requests or communications made using a computing device (e.g.,signals transmitted from the user's device or devices), and temporal ortime-related information, including time-related information associatedwith actions of the user (e.g., the time that the user requestedinformation using a mobile computing device) or time-related informationindependent of actions of the user (e.g., the dates and times that thetelevision program “Law & Order” is broadcast, a basketball team'spublished schedule, the schedule of nights that a local dance bar willfeature line dancing, etc.).

By correlating the external signals and the time-related information,for example, the systems, devices and methods described here candetermine how the user may act in the future based on observed useractivity, and can provide digital content or information to the userbased on the determination. In some implementations, observed increasesin activity may be used in the determination. Such increases in activitymay be specific or general. For example, the system may observe that theuser is interested in the television show “Law & Order” by observingexternal signals, such as search requests initiated from the user'smobile device that pertain to the show. Requests a user might make mayinclude requests for episode information, character biographyinformation, episode teasers, merchandise availability, ratingsinformation, program scheduling information, episode or trailer downloadrequests, ringtone or screen saver requests, and so on.

The systems, methods, and apparatuses described herein can be flexible,in that they may accommodate variations of user activity or preferencesat various times, and may adapt to a user's steady, increasing ordecreasing interest or engagement in particular activities or events (orinquiries or communications regarding the activities or events, e.g.).The determinations of variations of user preferences may be developedover time, as patterns of regular, semi-regular, or occasional userbehavior are observed. In various implementations, such determinationsmay be made based on the user's normal day-to-day interactions withtheir mobile or computing devices. That is, the system may not rely onhaving received explicit user indications of preferences (or preferredactivities, events, causes, associations, characteristics, habits,tendencies, settings and the like) as can typically be submitted orentered under a “preferences” view in some user interfaces of someprogram applications. Rather, the systems, devices, and methods can makedeterminations of user preferences and predict user actions, activities,events, needs, etc., based on information gathered in the course of theuser's normal interactions, and optionally also based on externalsignals unrelated or only tangentially related to specific userinteractions with the system, for example. In some implementations, suchinformation may be supplemented by explicit user preferences, asdescribed above, which may be used to further refine predictivedeterminations for providing appropriate content for a user in someimplementations.

The system may present a wide variety of information to the user basedon the determinations described. Examples can include advertisements,promotion information, news, event information, recommendations,reviews, directions, and the like. In this fashion, the user can bebenefited by receiving information of interest at a relevant time, whichmay reduce or minimize later search efforts that the user mightotherwise perform. As such, user resources, such as time and expendedeffort, for example, may be conserved, and user quality-of-life may beimproved.

The information may be presented to the user at the time thedetermination is made, or may be stored for later presentation at anappropriate time, according to various implementations. The informationmay be in the form of graphical or textual data, audible data, videodata, or combinations of the above. In some cases, the user may bealerted that content is available by various alert indications,including an audible alert (e.g., a beep, ringtone, recorded message,audio clip, etc.), a tactile alert (e.g., vibrating or pulsing of ahousing of the device), or visual alert (e.g., light indicator ormessage screen indicator, etc.). Combinations of the above, and others,may also be used.

FIG. 1 is a schematic diagram showing maps 102 a, 102 b, 102 c, 102 d ofexemplary time-related routes 103 a, 103 b, 103 c. For example, each ofthe routes 103 a, 103 b, 103 c may represent geographical informationrelated to a user at a specific time or over a period of time (e.g., 8a.m. on Monday, 5 p.m. on Wednesday, the period from 8:00 a.m. to 8:15a.m. on Thursday, etc.), and may indicate a path traversed by the userover the period of time. Similarly, the routes 103 may provide anindication of actions that a user may regularly or semi-regularlyperform, including providing information about actions that a user maybe likely to perform in the future. Each of the maps 102 a-d shows anarea near a home (indicated by an “H” in each of the maps 102) of auser. For simplicity, the exemplary maps 102 in FIG. 1 depict arelatively confined area, but maps of any appropriate scope and/orgranularity may be used in various implementations.

The first route 103 a is an exemplary path that the user may traverse intraveling to work (indicated by a “W” in map 102 a). The second route103 b shows an exemplary path that the user may follow to travel to abaseball stadium (indicated by an “S” in map 102 b). The third route 102c shows an exemplary path that the user may follow to get to a movietheater. The fourth map 102 d identifies a grocery store and a gasstation near the user's home, without showing a path. Because noassociated route is shown in the fourth map 102 d, the map 102 d mayrepresent the user remaining at home.

In the depicted examples, the maps 102 a-d and/or routes 103 a-c may beassociated with a timeline 104.

The timeline 104 is a graph that presents time on a horizontal axis,where one week is shown in FIG. 1. The routes 103 can be correlated tothe timeline 104, and can be represented in the timeline by events 106a-e, 108 a-c, 110, depicted illustratively as circles in FIG. 1.Representative lines are shown linking a particular map 102 andassociated route 103 with events in one or more timeline periods (e.g.,days of the week) of the timeline 104. For example, events 106 a-erepresent the user commuting from home to work each weekday (Monday, 106a; Tuesday 106 b; Wednesday 106 c; Thursday 106 d, Friday 106 e) duringthe week, as represented by route 103 a in map 102 a. In similarfashion, events 108 a, 108 b, and 108 c represent the user attendingbaseball games at the stadium on Monday, Tuesday, and Wednesday,respectively, and event 110 represents the user viewing a movie at themovie theater on Friday. Event position within a particular day in thetimeline 104 may also be representative of time-related information. Forexample, it can be seen that event 106 a occurred before event 108 a onMonday because event 106 a is shown to the left of event 108 a in thetimeline 104. While not shown in FIG. 1, each event may be associatedwith a timestamp or time period indication that identifies the time thatthe corresponding action occurred. Each of the events 106 a-e, 108 a-c,and 110 may represent a sample of user information obtained during aweek represented by the timeline 104. In various implementations,timelines of any appropriate length of time may be used, and for a givenuser the system may maintain one or multiple timelines.

Time and route information may be generalized to increase the number ofmatches between and among events. For example, a day may be split intoseveral periods, such as morning, mid-day, afternoon, and evening, sothat events that occur during any such period will be considered to becommon events, even if they differ somewhat in time. In a like manner,the locations of events may be classified primarily by their endpoints,so that limited deviations in paths between the endpoints will notprevent the events from being classified together. For example, if auser takes an alternative route for part of their commute one day, theevent for that commute may be treated as being common with othercommutes that used slightly different routes.

In some implementations, an information-providing system can obtaininformation related to the maps 102 or routes 103 and can use theinformation to determine or predict future user activity. In oneexample, the information-providing system can obtain informationpertinent to the user and related to the routes 103 by associating theroutes with the user. For example, the information-providing system canreceive data from a GPS device that detects the paths in the routes 103a-c. In another example, an external computing system, such as a serverhosting various applications (including, e.g., an application thatprovides driving directions or mapping capability), can determine theroutes 103 a-c by observing queries and results related to driving. Inanother example, the information-providing system can receive data froma payment processing service provider, which can be used to determinewhere and when the user stopped to purchase products. For example, thesystem may determine a location of a coffee shop where the user stoppedto purchase coffee, or a location of a gas station where the userpurchased gasoline. This information can be used to determine routes orpredict user activity. In other examples, calendar information, such asappointments, meetings, schedules, etc., may be used to determine theroutes 103 a-c. In some implementations, a route may be determined basedon one or more information requests pertaining to establishments alongthe route. Combinations of the above may also be possible.

A user may also be allowed to opt in or opt out of certain informationcollection. For example, the user may be allowed to determine wheninformation will be collected, and their computing device may alert themwhen information is being collected. Also, the user may be permitted toset the type of information so that, for example, information on theuser's search activity or locations is collected, but information aboutpurchasing activities is not. Also, to help maintain privacy for theuser, appropriate mechanisms may be used to ensure that certaininformation is handled only on the user's device, and not by a separateserver, or that information is adequately anonymized or otherwiseshielded (e.g., by hashing information where the actual value of theinformation is not key).

Using the obtained information, a system can generate the events 106a-e, 108 a-c, and 110 by associating the routes 103 to the timeline 104.In this example, the route 103 a is associated with weekday morningevents 106 a-e. The route 103 b is associated with the Monday, Tuesday,and Wednesday evening events 108 a-c, and the route 103 c is associatedwith the Friday evening event 110. In some implementations, the systemcan receive information that is related to a time. For example, thepayment processing service provider can provide a location where theuser purchased a product as well as a time when the user purchased theproduct. By associating the purchase events with the time, the systemcan generate an event in the timeline 104. In some implementations, thesystem can associate received data with a reception time. For example,the GPS device can transmit user travel data to the system in, forexample, near real time. The information-providing system can generate atravel event in the timeline 104 that corresponds to the time when thetravel data is received.

Based on the time-related information (for example, events in thetimeline 104), the information-providing system can observe patterns ofthe user's behavior associated with time, and can use the observedinformation to make predictions of future user behavior and providecontent accordingly. In one example, the events 106 a-d may be relatedto purchasing of coffee in a first coffee shop (labeled “Coffee Shop 1”in the map 102 a), such as if the user makes a habit of stopping atCoffee Shop 1 to purchase an espresso each morning before arriving atwork. In some implementations, the system can correlate the events andthe times of the events to observe a user behavior pattern. For example,one user behavior pattern may include purchasing coffee on weekdaymornings, as described above. In various implementations, events may besub-divided to include additional information. For example, the user mayfollow the route 103 a depicted in map 102 a each weekday on the way towork, but may only stop at Coffee Shop 1 on Monday, Tuesday and Friday,for example. In this case, events 106 a, 106 b, and 106 e, correspondingto those days when the user stopped for coffee, may include a sub-eventindicative of the coffee stop, while events 106 c and 106 d may not.

Using observed or determined patterns, the system can determineappropriate information for presentation to the user at a relevant time.For example, the system may use the observed information that the userenjoys a morning coffee before work, and may present a coupon fromCoffee Shop 1, or from another coffee shop (e.g., “Coffee Shop 2”)located along the route 103 a usually traveled by the user to work on aweekday morning. In an example, the system may present the informationto the user shortly before the user typically departs from home forwork, for example. The user may appreciate this information, because itmay be tailored to a preference of the user (e.g., the user's enjoymentof coffee on weekday mornings), and because it may be delivered orpresented in a time-opportunistic fashion (i.e., near the time when theuser often purchases coffee). As such, the user may save money or timewith little or no additional effort expended in obtaining the promotioninformation.

In some implementations, the system can use information indicative of afirst user pattern and information from an external signal to presentthe user with information at a time outside of a time associated withthe pattern. For example, suppose the user in the example above isdriving about town on a Saturday morning at 9:00 A.M. The system may usethe observed information pertaining to the user's weekday coffeepurchases (that is, associated with a pattern of activity occurring onweekday mornings), and may use the external signal that the user ispresently driving in the morning (albeit on a Saturday) to presentcontent associated with a coffee shop, such as a coupon for a free bagelwith the purchase of a medium or large mocha. One or more additionalexternal signals, such as the user's present location, calendarinformation, mobile device communications or requests, etc., may furtherbe used to tailor content for presentation to the user, including forexample presenting a coupon for a nearby coffee shop.

In certain implementations, the information-providing system can alsopresent time-related user information based on a combination of globalinformation and an observed pattern. As an illustrative example, thesystem can observe that the user traveled to the stadium the evenings ofMonday, Tuesday, and Wednesday based on events 108 a-c. In one example,the system can determine that baseball games are held in the stadium ata time near the occurrence of the events 108 a-c by accessing globalinformation, such as the baseball team's schedule, which may be storedin a server and available on a web page, for example. For example, thesystem may determine that the team plays home games at the stadium andmay access the team's schedule from a team or league web site. Invarious implementations, the system can request that the user upload agame schedule for the baseball team, or send a query to a search engineto search for results relating to the team and its schedule, or accessthe baseball team's website to obtain the schedule. The system can usethe user-related information (traveling to the stadium on Monday,Tuesday and Wednesday), combined with the global information or externalsignal (that a baseball game was played at the stadium each of thosenights), to determine that the user likely attended baseball games atthe stadium each of Monday, Tuesday, and Wednesday nights.

Such a determination might indicate any of several meanings For example,it may indicate that the user is a full or partial season ticket holderfor the baseball team, and that the user may be likely to attend manyfuture games at the stadium. Such an indication may be bolstered if theuser continues to attend baseball games at the stadium on a regular orsemi-regular basis, or if external signals are observed that indicate aninterest in the local baseball team (e.g., using one's mobile device tocheck league standings or read articles on the team). Alternatively, ifeach of the games that the user attended were against a common opponent,it may instead indicate that the user is a fan of the opponent, ratherthan the local team, and may portend that the user is likely to attendfuture games at the stadium when the opponent visits, but may be lessindicative that the user will attend games when other opponents come totown. Such an indication may be bolstered if the user never or rarelyattends baseball games involving other opponents, attends future gamesinvolving the same opponent, or exhibits observable behavior indicatingan interest in the opponent baseball team.

By combining the global information (e.g., the baseball team schedule)and the events 108 a-c, the system can observe a pattern that indicatesthat the user may be likely to attend many or all of the upcomingbaseball games scheduled at the stadium. In some examples, the systemmay use the pattern to predict that the user will attend thenext-scheduled baseball game, which may be determined from the team'sschedule. Based on the prediction, the system can present relevanttime-related user information for user review at an appropriate time.For example, the system may retrieve a date and time of the nextbaseball game by accessing the global information. Then, the system can,for example, present dining information for a restaurant located nearthe stadium, or along or near a route that the user may be likely totravel from home to the stadium. Such information may be presented, forexample, two hours prior to the baseball game, so that the user may havean opportunity to receive the information and use it accordingly. Forexample, with reference to map 102 b, the system may present a coupon orselected menu item information for restaurant 112, which is along theobserved route 103 b that the user has previously taken to the stadium.As another example, the system may present promotional informationduring the game for a bar or tavern near the stadium (not shown inFIG. 1) that is a popular after-game meeting place.

In certain implementations, the information-providing system can alsodetermine user preferences based on detected events. For example, thesystem may observe that the event 110, visiting a movie theater onFriday evening, occurred even though a baseball game was concurrentlybeing played in the stadium. This may indicate, for example, that theuser prefers seeing a movie on Friday nights to attending a baseballgame, even if the user may have previously purchased tickets for thebaseball game (e.g., if the user is a season ticket holder). In certainimplementations, the system can determine that the user prefers to go tothe movie theater rather than watch baseball on Friday nights. This maydistinguish Friday evenings, for example, because the user selectedbaseball over movies during the other days (e.g., Mon., Tues., Wed., asdescribed above) where both choices were available. Based on the userpreference, the system may provide movie-related information instead ofbaseball-related information on Friday evenings when both activities arescheduled, even though another user-observed pattern (associated withevents 108) may have indicated that the user attends many or mostbaseball games played at the stadium. For example, the system canpresent movie schedule information, movie trailers,advance-ticket-purchase information, 2-for-1 buttered popcornpromotions, and the like, at 6:00 P.M. on Friday evening, inanticipation that the user will again choose to attend a movie on Fridayevening over a baseball game. Similarly, the system may presentinformation on events similar to movies (e.g., a musical play) that maybe occurring in a nearby venue (e.g., in a student-run theatre near themovie theater) for user review on Friday evening. In some cases, thesystem may present information related to the baseball game andinformation related to movies on Friday evening, given the usertendencies described above.

In certain implementations, the information-providing system can alsopresent user information based on a global user profile. As anillustrative example, the system can observe that a significant portionof users tend to shop for groceries and refill their vehicles with gasduring weekends. In some implementations, the system may present theuser with information related to grocery stores or gas stations (e.g.,advertisements, coupons, promotions, locations or directions) near theuser's home, as shown in the map 102 d, during weekend periods. Suchglobal information can be combined with observed user tendencies invarious implementations, or may be used independently to predict userbehavior and provide appropriate content accordingly.

By determining time-related information to be presented to the user, thesystem can anticipate information to be transmitted to the user'spresentation device. In some implementations, the system can transmitthe information at a time that improves the user's experience. In oneimplementation, the system can store the information in the user'sdevice sometime prior to the determined presentation time. For example,the system can generate relevant information (e.g., information onstarting lineups for the day's baseball game, happy hour specials atnearby pubs, movies showing at the movie theater on Friday evening,etc.) and store the information locally on the user's device prior tothe event. The system may pre-fetch information that the system expectsthe user to be interested in, and may store the information locally onthe user's device. Alternatively, the system can transmit theinformation for presentation on the user's device at the determinedpresentation time.

FIGS. 2A-2B are timing diagrams 200, 250 showing examples of events andtheir occurrences with respect to time. Similar to the timeline 104 inFIG. 1, the timing diagrams 200, 250 present time on the horizontalaxes. As shown in FIG. 2A, the timing diagram 200 shows user-specificevents 202, 204, 206 during a week. Each occurrence of the events 202,204, 206 is represented by a spike in the timing diagram 200 at aparticular point in time along the diagram 200. In variousimplementations, events may be represented by database objects and eachoccurrence of an event may be represented by an instance of the databaseobject. In the depicted example, event 202 is related to a purchasingevent at a coffee shop. As shown, the timing diagram 200 indicates thatthe user made purchases each weekday morning at the coffee shop, in thisexample. Event 204 is related to attendance at a baseball game, andevent 206 is related to viewing a movie in a movie theatre.

As described above, the system may observe indications of user behaviorover any appropriate period of time (minutes, hours, days, weeks,months, years, etc.). In some examples, an information-providing systemcan observe user events on a daily basis. From the timing diagram 200,the system can determine user patterns for the events 202, 204, 206.Similar to the system as described in FIG. 1, the information-providingsystem can obtain information related to a user's activity. For example,the system can receive user purchasing information and determine thatthe user tends to purchase coffee at the coffee shop every morningduring the week. In another example, the system can receive GPS orlocation-based data (or ticket-purchase information, merchandise orconcession purchase information, parking ticket purchase information,search requests, communications, and the like) that indicates that theuser tends to attend baseball games on Monday, Tuesday, and Wednesdayevenings that coincide with games scheduled on those days. In anotherexample, the system can determine from search queries that the useroften visits the movie theater on Fridays. In some implementations, thesystem can also observe user events in other time periods. For example,the system may observe the user events over a period of weeks todetermine that the user goes to the movie theatre every Friday evening,or may observe user activity over a period corresponding to the baseballteam's season (e.g., April through September) to determine activitypatterns related to interest in baseball.

As shown in FIG. 2B, the timing diagram 250 shows two events 252, 254(indicated by event A 252 and event B 254, respectively) that are notuser-specific events. For example, event A 252 may correspond to globalevent involving a worldwide stock market scare, where several stockmarkets around the world may substantially decline in value concurrentlyor in succession. Event B 254 may be a regional event, such as theIndependence Day holiday in the United States. These and othernon-user-specific events may be used to provide users with appropriatetime-related information, and may be used independently or inconjunction with observed user behavior information or other externalsignal information. In some implementations, the information-providingsystem may store the events 252, 254 in a data store. By combining theevents 252, 254 with users' profiles determined based on observedbehavior or preferences, the system can present time-related informationto users, as will be described more fully below.

FIG. 3 shows examples of user information provided based on time-relateduser data. A timing diagram 300 includes nodes 302, 304, 306, 308, 310,312. Each of the nodes 302, 304, 306, 308, 310, 312 represents apresentation event of user information. In the depicted example, thenodes 302 may represent presentations of coupons for a coffee shop. Thenode 304 may represent, for example, a presentation of an advertisementfor a restaurant near the baseball stadium or near the movie theater.The node 306 may represent presentation of information related to thestock market. The node 308, 310, 312 may represent presentation ofinformation related to Independence Day. Information may be presented invarious manners. For example, the information may be displayed on anoutput device, such as a display device, of the user's mobile computingdevice. The information may be of any suitable form, including visual,audible, tactile, etc.

Based on the user-specific events 202, 204, 206 and the global events252, 254, the information-providing system can generate user information(e.g., advertisements, promotional material, news articles,recommendations, and the like) and present the user information to theuser at a relevant time. In this example, the system can observe theuser's activities on the first two days of the week (Mon., Tues.) anddetermine a user behavior pattern. In various implementations, thesystem can use determined patterns to forecast user activity for futureperiods. In this case, the system can use determined patterns to predictuser activity for the rest of the week. For example, the system canpredict that the user tends to purchase coffee on weekday mornings basedon the instances of event 202 on Monday and Tuesday morning (see FIG.2A), so the system may present coupons for the same or a competingcoffee shop each of the remaining weekday mornings (the nodes 302).

In another example, the system may observe that the user may be a seasonticket holder for the local profession baseball team. The system canretrieve a schedule of the baseball games and present restaurantinformation (e.g., dinner menu/lunch menu) at a time before or aftereach of the baseball games. As shown, information for the restaurantsnear the stadium is presented based on the baseball game schedule. Forexample, the information can be presented on a Friday evening when aFriday night game is scheduled. Similarly, the information may bepresented at noon on Saturday to coincide with a Saturday afternoongame.

In some examples, the system can detect that the presented informationwas not useful for the user. In some implementations, the system canassess usefulness of presented information by detecting whether the userreviews the information, uses the information, or performs a predictedactivity. For example, the user may not go to the baseball game onFriday evening as predicted, and instead may go to a movie theater. Insome examples, the system can detect that the node 304 presented onFriday evening may not be useful because the user did not review theinformation or use the information (e.g., if the user did not use apresented coupon). In some cases, the user may provide direct feedbackconcerning presented information, such as whether particular informationor classes of information was useful or not. Assessments of presentedinformation's effectiveness or usefulness can be used to better tailorfuture information presentation to the user. Also, such information canbe used to update predicted user behavior patterns or expectations. Incertain implementations, the system can update the user's behaviorpattern based on the detected information. For example, the system canupdate the user's behavior pattern to reflect a user preference formovies over baseball on a Friday evenings.

In some implementations, the system can identify increases or decreasesin user activity related to events. Using the increase or decrease inactivity, the system can correlate user interests in each of theactivities. In some examples, the system can present more relatedinformation based on an increasing frequency of an activity. Forexample, suppose that the baseball team is having an excellent season,and that as a result the user begins forgoing Friday night movies toattend the games. The system may note the change in behavior, and mayalter the presentation of information accordingly. For example, thesystem may observe indications of the user attending one or more Fridaynight games and not attending Friday night movies. The system may alsoobserve an increase in external signal activity involving the baseballteam. These and other indications may be used to determine the change inuser behavior patterns, and predictive assessments may becorrespondingly adjusted.

Conversely, if the team begins to struggle, the user may elect againstattending some games, even those not falling on Fridays. Suppose furtherthat the user begins to show an increased interest in golf, and plays aseries of rounds after work over a period of days or weeks. In someexamples, the system can correlate the increased interest in golf withthe decreased interest in baseball, and present more golf-relatedinformation (e.g., discounts on golf equipment, coupons for reducedgreens fees, etc.) while presenting less baseball-related (orstadium-related) information. For example, the system can decreasepresentation of restaurant information near the stadium, and replace itwith presented information related to the user's substitute activity,golf in this example.

Referring again to FIG. 3, the system can also present the node 306 inresponse to non-user-specific events. In one example, theinformation-providing system can present information in response to aglobal event, such as a global stock market correction. For example, thesystem can present information about investments, such as saferfinancial products or particular securities that may now be attractivelypriced, broker information, and the like, during the market correction.In some implementations, the system can also identify other local,national, or global events, such as a local weather alert, a naturaldisaster (e.g., earthquake, tornado, tsunami, etc.), or a politicalwarning (e.g., riots in country X, presidential assassination in countryY). Based on the event information, the information-providing system canprovide timely information to the users. For example, in conjunctionwith the first winter storm warning of the season, the system maypresent information pertaining to snow tires that may be appropriate forthe user's vehicle. The information may include sale information fortires available at a tire dealer along a route that the user is expectedto traverse, or which may be near the user's present location, or whichmay be near the user's home or workplace, for example.

In some implementations, the system can provide information based on auser profile. For example, the user profile may include one or morelocations, occupations, interests, etc., and may be determined byobserving the user's normal day-to-day activities, such as by observingthe user's daily interactions with a mobile device.

The information-providing system can also provide information based oninformation gathered from multiple users. For example, nodes 308, 310,312 may be generated based on time-related preferences of more than oneuser. The information-providing system may observe a spike in userpreferences for events related to the event 254 (the Independence Dayholiday). In an implementation, because of a general increase inactivity among other users with respect to a certain activity or event,the system may present information to the user concerning the activityor event because the system may predict that the user may be similarlyinterested in such information.

Based on the observation, the system may present advertisements forfireworks on July 3 (the node 308), fireworks displays information orconcert information on July 4 (the node 310), and car dealer extendedsale information on July 5 (the node 312). Based on user profiles, thesystem may present different information to the users. For example, thesystem may only present fireworks show information for shows occurringwithin 20 miles of a user's home. As another example, the system may notpresent any July 4 Independence Day information if the user is a Russiancitizen living in Moscow, as such a user would likely have no interestin such information.

Information can be presented in anticipation of an expected action or inresponse to an observed action. For example, suppose that a baseballgame is scheduled for a Thursday evening in June, and that the systemhas determined that the user is likely to attend the game at thestadium. Suppose that the weather forecast calls for a dangerousthunderstorm for that evening. The system may present a weather warningto the user prior to game time, which may include a suggestion to packan umbrella if planning to attend the game. Later, if the stormmaterializes and intensifies to include a tornado warning during thegame, the system may present information that describes tornado shelterlocations within the stadium, for example. In one example, such amessage may only be presented if the system determines that the user isin attendance at the game. The message may consider the user's seatinglocation in the stadium and may provide walking directions from theuser's seating location to the shelter area.

Preexisting connections between event types may be used to provide suchinformation to a user. For example, events at an outdoor venue may beassigned a connection with weather, where the location of the venue is aparameter for the connection. As a result, when a user is associatedwith an event at the venue, the various events that are associated withthe venue may be checked, such as by checking whether for the geographyaround the venue (e.g., centered around an address determined to beassociated with the venue).

FIG. 4 is an exemplary set diagram 400 that includes two informationsets 402, 404 and their intersection 406. The information sets 402, 404may include information eligible for presentation to a user (e.g.,product information, service information, location information,promotional information, etc.). Based on the intersection 406 of thesets 402, 404, an information-providing system can select information tobe presented to the user. The sets 402, 404 may represent informationcorresponding to two different events or to other such items.

In some implementations, the set 402 includes time-related information.The information-providing system can gather information by, for example,accessing external servers on the Internet or accessing a database. Forexample, the set 402 can include time-related activities related to acurrent time. In one example, if the current time is near IndependenceDay, then the system may gather information related to events occurringduring Independence Day in the information set 402.

As an illustrative example, the set 402 may include time-relatedinformation related to a time period from July 3 to July 5. For example,the set 402 can include information on events such as parades, fireworksdisplays, baseball games, festivals, etc., and promotions (e.g.,information on retailers having sales corresponding to the holidayperiod) that are occurring between July 3 and July 5. In an example, theset 402 can include coupons for a fireworks retailer offering discountsof 33% on July 3, 50% on July 4, and 70% on July 5.

The information set 404 includes user-specific information, such as theuser's location of residence (e.g., Minneapolis, Minn.), user behaviorpatterns (e.g., user's tendency to get lunch at the burger joint twoblocks from the user's workplace), user interests (e.g., the localprofessional baseball team, golf, boating, the stock market, World WarII history books and videos), and other user-specific information. Insome implementations, the set 404 can include information related to auser profile. For example, the information-providing system can gatherinformation, such as user's interests, user's work information, user'sbehaviors, user's residential location, etc., from the user profile.Again, the information provided in such a manner may be controlled by,and limited by, the user.

In some implementations, the user profile can be constructed byreceiving profile information from the user and/or observing userbehaviors. In one example, the information-providing system can receivea user profile uploaded from a user indicating that the user lives inMinneapolis, Minn. In one example, the information-providing system candetermine that the user is living in Minneapolis, Minn. by observingmultiple search queries of restaurants in the Minneapolis area over aperiod of time, and/or observing other user behavior that indicates thatthe user resides in a particular area. In one example, the informationprovider system can determine that the user is located in Minneapolisbased on GPS information.

In one example, the information-providing system can determine a userprofile based on observed user behaviors. For example, theinformation-providing system can determine a user's preferences relatedto a particular event, such as Independence Day, based on the user'spast behavior in relation to the event or to a similar event. Forexample, the set 404 can include information relating to the user'sbehavior for previous Independence Day holidays. As an example, the set404 can include information relating to past activities of the user,such as watching fireworks on Independence Day after attending abaseball game, and purchasing fireworks on July 5 to get the bestbargains.

In some implementations, the information-providing system can includeinformation that is common to both sets 402, 404, symbolized in FIG. 4by intersection region 406. Accordingly, the intersection region 406 mayinclude information that is related to user preferences and to a timeperiod of interest. In one example, the intersection 406 may includefireworks events after baseball games during July 3 to July 5 nearMinneapolis, Minn., because the user attended a firework displayfollowing a baseball game on Independence Day the year before. Theintersection 406 may also include fireworks coupons on July 5 for storesnear Minneapolis because the user purchased fireworks on July 5 lastyear.

Information can be presented to the user based on the intersection 406.In some examples, the system can present, at the beginning of a baseballgame during the Independence Day weekend, information concerningfireworks events following the baseball game. As another example, thesystem can present the fireworks coupon information each morning on July3, 4 and 5 to notify the user of the fireworks discounts that day or inthe near future.

FIG. 5 is a schematic diagram of an exemplary system 500 that can beused to present time-related user information. In one example, thesystem 500 can present user information based on observed user behaviorsand predicted future user actions. In some examples, the system 500 canperform some or all functions described above with respect to FIGS. 1-4.

The system 500 includes an information-providing system (IPS) 502, anetwork 504, a traffic service module 506, and a database 508. The IPS502 can communicate with the traffic service module 506 and the database508. For example, the IPS 502 can request and receive trafficinformation (e.g., road closure information and traffic congestioninformation) from the traffic service module 506. For example, the IPS502 communicates with the database 508 to retrieve information for auser. In one implementation, the database 508 can include user-relatedinformation, such as a schedule of the user's favorite baseball team, alist of local events near the user's location, and/or promotionalinformation associated with the user's favorite stores, among others. Invarious examples, the databases 508 may be connected to the IPS 502 by ahigh bandwidth LAN or WAN. In some examples, the database 508 can beconnected to the IPS 502 through the network 504.

Through the network 504, the IPS 502 is connected to one or moreexternal servers 510, a mobile device 512, and a computing device 514.The external sever 510 can include, for example, a mapping server thatprovide routing information, a business directory server that providebusiness information (e.g., store information, restaurant information,etc.), and/or web servers that provide information about news items,current events, or various companies and organizations (e.g., thebaseball team website that provides game schedule information). In someimplementations, the IPS 502 can retrieve information from the externalserver 510 based on a user preference (e.g., a baseball game schedulebased on user's interest in watching baseball). In some implementations,the external server 510 can also provide information to be stored in theIPS 502. For example, the external server 510 may provide businessinformation, such as location information, operating hours, features,contact information, and/or promotional information for a business, tothe IPS 502. In some examples, the IPS 502 may present the receivedbusiness information to a user based on the user's preferences.

The mobile device 512 and the computing device 514 may be used by usersof the system 500. In the depicted example, the mobile device 512 isshown as a cellular telephone handset for communicating with a user. Forexample, the mobile device 512 can communicate, via a cellular telephonenetwork, with the IPS 502 using a Wireless Application Protocol (WAP)standard or other appropriate communication protocols. Other examples ofthe mobile device may be possible. For example, the mobile device 512can be a personal digital assistant, a personal computer, or avoice-driven communication device. The mobile device 512 may includeappropriate input and output structures, such as, for example, a displayscreen which may have a touch-sensitive surface, data entry keys,clickable data entry wheels, speakers, and a microphone, including forvoice recognition.

In some implementations, the IPS 502 can gather information from andpresent information to a user using the mobile device 512. For example,the mobile device 512 can receive target information from the IPS 502.By displaying the target information, for example, the user of themobile device 512 can review the target information. In someimplementations, the mobile device 512 can present the targetinformation in other formats. For example, the mobile device 512 canpresent the target information by playing audio data received from theIPS 502. In an example where the IPS 502 provides a coupon to the mobiledevice 512, the user may redeem the coupon in various ways. For example,the user may display the coupon to an attendant, who may honor thecoupon. The user may use the mobile device 512 to send a communicationto a computing device at the place of business associated with thecoupon for redemption. Also, the display of the coupon (e.g., on adisplay screen of the device 512) may include a machine-readablerepresentation that may be scanned for redemption of the coupon, to listjust a few examples.

The computing device 514 may be a desktop computer, a set top box, orother device that can be connected to the network 504. In someimplementations, a user of the computing device 514 may transmit queries(e.g., web search request, driving direction request, and/or dinninginformation request) to the IPS 502. For example, the computing device514 may be connected to the Internet. The IPS 502 can observe userbehaviors based on the received queries, and can determine user interestin various activities, events, or subject matter based on user requestsor interaction with the system. In some examples, the IPS 502 canpresent time-related user information to the computing device 514. Forexample, the IPS 502 can present coupons for various coffee shops to thecomputing device 514. The user may print the coupons for laterredemption, according to some implementations.

The system 500 also includes a vehicle navigation system 516, asatellite 518, and a base station 520. The navigation system 516communicates through a satellite network via the satellite 518 and thebase station 520. As shown in FIG. 5, the base station 520 is connectedto the network 504 to communicate with the IPS 502. The user can use thevehicle navigation system 516 to obtain route information (e.g., drivingdirections). For example, a user of the vehicle navigation system 516can transmit a request to the IPS 502 for route information. Uponreceiving the request, the IPS 502 can provide the requested routeinformation to the user, perhaps after first communicating with thedatabase 508 or external server 510. In some implementations, thenavigation system 516 can be used to gather location information (e.g.,through a GPS system) and to display maps and other data. In someexamples, the IPS 502 can also query the vehicle navigation system 516for a current location of the vehicle navigation system 516. Afterreceiving the current location, the IPS 502 can, for example, presenttarget information (e.g., restaurants, gas prices, auto repair shop,etc., in the area) related to the current location of the vehiclenavigation system 516. In some implementations, the mobile device 512can include a GPS system, and can implement the features describedabove.

As described, the IPS 502 can receive requests from the devices 512,514, 516. In an implementation shown in FIG. 5, the IPS 502 includes aninterface 522 to receive requests from the devices 512, 514, 516. Forexample, the interface 522 can be a network interface, such as a networkcard. In some examples, the interface 522 is configured to transmit andreceive data via the network 504. The interface 522 is coupled to thedatabase 508 and the traffic service 506. For example, the IPS 502 canretrieve information from the database 508 and the traffic service 506via the interface 522. In some examples, the IPS 502 can also access theexternal server 510 to retrieve information via the interface 522 andthe network 504.

In the depicted example, the IPS 502 includes a request processor 524and a response formatter 526 to process user requests and generateresponses to the user requests, respectively. The request processor 524processes requests received by the interface 522. For example, therequest processor 526 can parse a received request and format therequest from a network message format (e.g., an HTML format or a textformat) to a format usable by the IPS 502.

After formatting the received request, the IPS 502 obtains informationrequired by the received request. In some examples, the IPS 502 mayaccess the database 508, the traffic service module 506, and/or theexternal servers 510 to obtain the required information. For example,the IPS 502 may access the traffic service module 506 if the userrequests traffic-related information. The IPS 502 also includes amapping data repository 530. For example, the IPS 502 can access themapping data repository 530 to obtain route information and otherinformation related to a location or a destination of the user.

In the depicted example, the IPS 502 includes a data bus 528 thatinterconnects various components of the IPS 502. Through the data bus528, the IPS 502 can transmit the obtained information to the responseformatter 526. For example, the response formatter 526 can receiveinformation from the mapping data repository 530 via the data bus 528.After receiving the information, the response formatter 526 formats theinformation in a format that can be used by the requesting device.

Based on the user requests and/or other types of received usercommunications or interactions, or other received user events, the IPS502 can determine user preferences and generate a user profile relatedto the user preferences. In the depicted example, the IPS 502 includesan observation module 532 to determine the user preferences. Forexample, the observation module 532 determines the user preferencesbased on, for example, search requests received from the user, shoppingtransactions originated by the user, route information used by the user,selections made by the user, information requests, or other useractivities. For example, the user events can be received from thedevices 512, 514, 516.

In one example, the observation module 532 can determine a userpreference by observing an increased frequency of user activity relatedto one or more events, activities, or subject matter categories. Forexample, the observation module 532 can determine a user preference fora TV program if the user frequently searches information (e.g., showtime, characters, episodes description, and/or spoilers) related to theTV program. The observation module 532 can also detect increases in useractivity, and can use the detected increases to refine the user profileor preferences.

After determining the user information, the IPS 502 stores thedetermined user preferences in a user data repository 534. In someimplementations, the user data repository 534 can also store userprofile data (e.g., address, occupation, interests, and other personalinformation) received from the user.

Based on information stored in the user data repository 534, the IPS 502presents user related information to the user. In the depicted example,the IPS 502 includes a user related information generator (URIG) 536 togenerate the user-related information. In some implementations, the URIG536 can select information to be presented based on the user data in theuser data repository 534. For example, the URIG 536 can presentinformation (e.g., soundtrack, spoiler, or show time information)related to a particular TV program that the user is interested in.

In various implementations, the URIG 536 can generate user relatedinformation based on one or more associations common to the receiveduser events. For example, the observation module 532 can collect anumber of user events related to downloading of songs. In one example,the observation module 532 can generate associations with the downloadedsongs based on associated categories, such as an artist or collection ofartists associated with the songs, genres of the songs (e.g., rock,country, blues, classical, or hip-hop), and/or time periods when thesongs were released (e.g., 1970s, 1980s, 1990s, etc.). In some examples,the observation module 532 can identify one or more user preferences byassociating the downloaded songs and the associated categories. Forexample, the observation module 532 may determine that the user isinterested in rock music from the 1980s. In some implementations, thedetermined user interest is stored in the user data repository 534. Insome examples, the URIG 536 can present, based on the user interest inrock music from the 1980s, upcoming concert touring information for BonJovi, U2, or Guns N'Roses, rock bands that enjoyed popularity in the1980s.

The URIG 536 can also use the prediction module 540 to generatetime-related user information. For example, the prediction module 540can generate predictive events by combining user related information andtime-related information. In one example, the prediction module 540 cancorrelate search requests related to a TV program with the time thesearch requests were received. For example, suppose that a user submitsa search request regarding episode information for “American Idol,” andthat the request is submitted shortly after the program finishes airingon a particular night. The next time the program is aired, the user mayagain submit a similar search request. In some examples, based on arelationship between the search request and the time of receiving thesearch request, the prediction module 540 can generate time-relatedinformation by predicting a next time when the user will request similarinformation. For example, the prediction module 540 can generate andstore, in the user data repository 534 for example, a prediction thatthe user may request “American Idol”-related information the next timethat the program is aired, or shortly thereafter.

Using the prediction generated by the prediction module 540, in oneimplementation, the URIG 536 can select and present time-related userinformation based on a user preference. The URIG 536 can select topresent information such as a purchase offer for the TV programsoundtrack before, during, or after the program airs, because, forexample, the prediction may indicate that the user will likely view theTV program, and may be interested in receiving such a promotional offerat a time proximate the viewing of the show. In the example described inFIG. 1, the prediction module 540 may determine that the user willpurchase a coffee each weekday morning. Based on the receivedprediction, the URIG 536 can retrieve information related to coffeeshops near the travel route of the user from the database 508 and/or theexternal servers 510, and can present such information to the user at arelevant time, such as shortly before the user departs from home eachweekday.

In some implementations, the URIG 536 can also select information froman ad content repository 550. For example, the ad content repository 550includes ad content that can be presented to the user based on userinterests. For example, the ad content repository 550 can includepromotion information (e.g., coupons) for coffee shops, given the user'sobserved interest in morning coffee. In one example, the URIG 536 mayselect coupons from a coffee shop near a user's route to work on weekdaymornings, or links for purchasing a soundtrack compact disc of a TVprogram within thirty minutes after the program finishes airing ontelevision.

FIG. 6 is a schematic diagram of a communication system 600. Forexample, the communication system 600 may be implemented in the mobiledevice 512 of FIG. 5. The system 600 receives and transmits informationwirelessly using a transceiver 602, with the received signals beingpassed to a signal processor 604. The signal processor 604 can includedigital signal processing (DSP) circuitry for processing the receivedsignals. Normal voice communication can be routed to or from audioprocessor 606.

As shown, the audio processor 606 communicates with a user interface608. The user interface 108 handles communications between the user andthe system 600, such as voice, visual, and data entry communication.Visual presentation of information may be provided via a display screen610. General data entry, apart from the entered voice data, may occurthrough a keypad 612. In the depicted example, the keypad 612 isarranged as a standard 12-key telephone keypad. In other examples, thekeypad 612 can be a touch screen or a keypad having other layout, suchas a standard “qwerty” keyboard layout. The system 600 also includesappropriate control keys 614 for performing control functions. In someexamples, the keypad 612 and the control keys 614 may include contactpush-buttons, joysticks, portions of touch-sensitive panels, or otherappropriate input devices. Although the communications are shown forclarity as occurring through a single user interface 608, multipleinterfaces may be used, and may be combined with other components.

The system 600 includes a number of computer applications 616, such asgames, applications to assist in dialing numbers, and applications topermit web browsing, including the entry of data as part of the webbrowsing. The applications 616 may be stored in ROM, Flash memory, RAM,MRAM, or other memory device accessible by the system 600. The system600 includes a dialing module 618 to provide standard dialingfunctionalities for the system 600. After receiving entered dialingdigits or voice dialing instructions through the interface 608, thedialing module 618 may, for example, transmit dial signals through thetransceiver 602 via a communication interface 620.

In some implementations, the applications 616 can include a voicerecognition application. For example, the voice recognition applicationis configured to convert voice signals (e.g., the user's voicecommunication) received from the user interface 608 into digital data.In some examples, the IPS 502 can use the digital data to determine auser preference.

A data entry module 622 may operated on data received via thetransceiver 602. For example, the received data may be search resultsrequested by a user of the system 600. In another example, the receiveddata may be target information presented by the IPS 502. The data entrymodule 622 can pass the entered data to one of the applications 616. Insome implementations, the application 616 can display the targetinformation on the display 610. In some implementations, the application616 can display an icon to represent that target information has beenreceived and is available for display. For example, the user may selectone of the control keys 614 to display the target information.

In some implementations, the system 600 uses an information module 624to manage the target information. For example, the information module624 can determine a time to present the target information. In someimplementations, the information module 624 may periodically requesttarget information to be downloaded to the system 600. In variousimplementations, the received data or information from the system 502 ofFIG. 5 may include display commands that instruct when to deliver thecontent (e.g., by displaying on display 610) to the user. In someimplementations, the information module 624 may itself determine when topresent the information, and may do so in response to a user-initiatedinteraction with the mobile device.

In some examples, the downloaded target information may be stored in adata store 626. The data store 626 may be a dedicated memory device, ormay be one or more blocks of memory in a shared memory space. Forexample, the data store 626 may be, for example, RAM, Flash memory, ROM,MRAM, or other appropriate memory technologies.

In certain implementations, the downloaded target information mayinclude presentation instructions, such as a time for presenting theinformation. In some implementations, the information module 624 isconfigured to present the target information based on presentationinstructions specified with the target information. For example, thesystem 600 may receive target information with instructions that theinformation be displayed at a particular time (e.g., 7:32 p.m. on May 8,2008), or in response to a particular user action (e.g., when the userindicates an interest in particular subject matter, observable based onthe user's interaction with the mobile device). The information module624 can store the target information in the data store 626. At theappropriate time, the information module 624 retrieves the stored targetinformation and presents the target information to the user.

FIG. 7 is a flow chart of an exemplary method 700 that can be performedby a system for presenting time-related information. At step 702,information regarding events is obtained. Such information may be basedon user interaction with a mobile device. Search requests, informationrequests, communications, selections, and the event, activity, orsubject matter they pertain to, are examples of information that may beobtained. At step 704, a time dependent increase in activity for anevent may be identified. Such an increase in activity may take severalforms. For example, the increase may include observation of apredetermined number of events within a predetermined period of time. Asanother example, the increase may include an increase in activity of apredetermined percentage over a period of time as compared to thepercentage of activity over a previous period of time. The increase inactivity may be based on actions of other users. For example, the systemmay notice an increase in movie-related-information-seeking activity inthe month leading up to the Oscars award show.

If a user has not indicated interest in the event at step 706, theprocess returns to step 704. If, however, the user has indicated aninterest in the event at step 706, the observed interest is correlatedwith an identified increase in activity for the event at step 708.Whether or not a user has demonstrated an interest in the event may bedetermined by examining stored user behavior data, for example, whichmay include indications of interest the user has expressed viainteractions with the user's mobile device, for example. Indications mayalso be determined using location-based information, as another example.A user's interest level may be scored, where the score indicates a levelof interest. For example, if the user has indicated interest in an eventon multiple occasions, the user may have greater interest in the eventthan if the user has indicated an interest only once. Similarly, if theuser has indicated interest over a period of time, perhaps in a regularor semi-regular fashion, this may be indicative of a higher level ofuser interest in the event. Increases in user activity can also be usedin the correlation. Increases can include observing a predeterminednumber of user indications over a period of time, including apercentage-increase over a period of time as compared to an earlierperiod, or extension of a pattern of behavior, such as observing anindication of interest on a third consecutive day (extending the patternfrom the observed behavior on the first two consecutive days, e.g.).

At step 710, information is provided to the user, as by providing theinformation for review at the user's mobile device, and the method 700ends. For example, target information can be provided related to acurrent user interest and the event. The information may be provided ata time that is predicted to correspond to a time that the user may beespecially interested in receiving the information, which time may bedetermined using the prediction techniques disclosed herein. Forexample, patterns of user behavior, whether regular or semi-regular, maybe observed and predictions of future user behavior may be determined.In some cases, the predictions can also be based on external signals,such as information retrieved from storage locations or from othercomputing devices, where the information does not involve past behaviorof the user.

FIG. 8 shows example operations 800 between a client and a server toprovide time-related target information. At step 802, a client device,such as a mobile phone, smartphone, or PDA, transmits user eventinformation to a server. User event information, such as transactioninformation, information requests, location information, communicationinformation, and the like may be transmitted in this fashion, such asover a communication network. At step 804, the server receives the userevent information. After receiving the user event information, theserver can identify a user preference related to the user event at step806. For example, the user preference for buying coffee on weekdaymornings based on frequency information (e.g., a purchasing pattern) andtime information (e.g., purchasing time) may be identified.

After identifying the user preferences related to the user event, theserver updates user data based on the identified user preferences atstep 808. Such information can be stored in a digital storage location,for example, and can supplement information that comprises a profile forthe user, which may be developed over time by the server for use inmaking predictions of future user behavior. At step 810, the serverdetermines whether target information is to be transmitted to theclient. For example, a prediction module may determine a time related toa user preference. As an example, the prediction module can determinethat the user may attend the local baseball team's next-scheduled homegame at the stadium based on a pattern of observed user activity. Theprediction module may obtain the team's schedule, determine the nexthome game, and determine an appropriate time for information delivery.In some implementations, the determined time associated with a predictedevent can be scheduled and stored in a data repository. A schedulingprogram may then manage delivery schedules so that the time-dependentinformation may be delivered at appropriate times.

If no information stored is related to the user preference of thecurrent time, then the step 810 is repeated. If some information storedis related to the user preference of the current time, then the servergenerates time-related target information at step 812. After generatingthe time-related target information, the generated target information istransmitted to the client at step 814. Such information can betransmitted, for example, over a communication network.

The client device may receive the information at step 816. The clientcan provide the information for user review at step 820. In some cases,the client may provide the information for review upon receiving theinformation. In other cases, the client will provide the information forreview at a scheduled time, often some time following receipt of theinformation. In yet other cases, the client can provide the informationin response to an action by the user, as opposed to at a particular timeindependent of user action following receipt of the information. In thiscase, the client may receive the information and wait for a particularresponse from the user (e.g., selecting a key on the device), beforepresenting the information to the user. In some cases, the user responsemay indicate that the user is not interested in the information, inwhich case the information may not be presented. As examples of thescenarios just described, the user can accept (e.g., select to view thepresented information) or reject to review the information. In someimplementations, if the user rejects the information, the server canupdate the user data to adjust an indication of user interest of thepresented information. In some examples, the adjustment can decrease aprobability of presenting the information or similar information to theuser in the future.

Similarly, user response to presented information may be tracked andused to update user profile information. These adjustments may guidefuture predictive determinations and information delivery. For example,if the user redeems a presented coupon, such system may be more likelyto present similar coupons in the future. In various implementations,the operations described above can be combined or separated in variousmanners, more or fewer operations may be executed, and operations mayoccur at either the client or the server, e.g.

In any of the implementations described above, the period for observinguser activity or global activity may be a definite period or anindefinite period. For example, the system may be programmed to capturedata for one week and then stop capturing data. Alternatively, data maybe gathered until a recurring or semi-recurring pattern begins to showin the data. In such a case, a minimum collection period may beestablished, such as one week, one month, etc., so that the system doesnot stop gathering data prematurely if by coincidence events areobserved and thought to constitute a pattern. Maximum periods maysimilarly be established.

The presence or absence of commonality may be determined at variouslevels of granularity. For example, if several instances of an eventhave been observed, a point may be considered “common” if it is commonto a particular percentage of the instances. As an example, if the userstops for coffee each morning Monday through Friday during a first week,but skips stopping for coffee on Friday of the second week, the systemmay yet predict that the user will stop for coffee on each futureworkday. In this fashion, the incidence of the skipped day may beconsidered an aberration, not worthy of altering the predictive scheduledeveloped based on the observed user activity. On the other hand, if theuser begins repeatedly skipping the morning coffee stop, the system maydetermine that the user's behavior activity is changing, and may adjustpredictive determinations and information delivery accordingly.

Nested or overlapping patterns may also be observed. For example, on topof the pattern of stopping for coffee each weekday, a pattern ofpurchasing a particular delicacy on particular days may be determinedbased on transaction records. As another example, the user may typicallypurchase a newspaper each Friday to get an early look at happeningsduring the upcoming weekend, or may purchase a paper on Monday morningsduring the football season to check the statistics of his fantasyfootball team. The papers may be purchased, e.g., at the coffee shop orfrom a street-side news vendor or distribution box near the coffee shop.If the user decides to go on a health kick and swear off caffeine,including abstaining from coffee, such newspaper purchases may beexpected to similarly diminish in frequency of occurrence.

FIG. 9 shows an example of a generic computer device 900 and a genericmobile computer device 950. In various implementations, the devices maybe used to implement the systems and methods described in this document.Computing device 900 is intended to represent various forms of digitalcomputers, such as laptops, desktops, workstations, personal digitalassistants, servers, blade servers, mainframes, and other appropriatecomputers. Computing device 950 is intended to represent various formsof mobile devices, such as personal digital assistants, cellulartelephones, smartphones, and other similar computing devices. Thecomponents shown here, their connections and relationships, and theirfunctions, are meant to be exemplary only, and are not meant to limitimplementations of the systems, methods, devices or techniques describedand/or claimed in this document.

Computing device 900 includes a processor 902, memory 904, a storagedevice 906, a high-speed interface 908 connecting to memory 904 andhigh-speed expansion ports 910, and a low speed interface 912 connectingto a low speed bus or port 914 and storage device 906. Each of thecomponents 902, 904, 906, 908, 910, and 912 are interconnected usingvarious busses, and may be mounted on a common motherboard or in othermanners as appropriate. The processor 902 can process instructions forexecution within the computing device 900, including instructions storedin the memory 904 or on the storage device 906 to display graphicalinformation for a GUI on an external input/output device, such asdisplay 916 coupled to high speed interface 908. In otherimplementations, multiple processors and/or multiple busses may be used,as appropriate, along with multiple memories and types of memory. Also,multiple computing devices 900 may be connected, with each deviceproviding portions of the necessary operations (e.g., as a server bank,a group of blade servers, or a multi-processor system).

The memory 904 stores information within the computing device 900. Inone implementation, the memory 904 is a computer-readable medium. In oneimplementation, the memory 904 is a volatile memory unit or units. Inanother implementation, the memory 904 is a non-volatile memory unit orunits.

The storage device 906 is capable of providing mass storage for thecomputing device 900. In one implementation, the storage device 906 is acomputer-readable medium. In various implementations, the storage device906 may be a floppy disk device, a hard disk device, an optical diskdevice, a tape device, a flash memory or other similar solid-statememory device, or an array of devices, including devices in a storagearea network or other configurations. In one implementation, a computerprogram product is tangibly embodied in an information carrier. In animplementation, the computer program product may be stored on acomputer-readable medium, including those discussed above. The computerprogram product contains instructions that, when executed, perform oneor more methods, such as those described above. The information carrieris a computer- or machine-readable medium, such as the memory 904, thestorage device 906, memory on processor 902, or a propagated signal.

The high speed controller 908 manages bandwidth-intensive operations forthe computing device 900, while the low speed controller 912 manageslower-bandwidth-intensive operations. Such allocation of duties isexemplary only. In one implementation, the high-speed controller 908 iscoupled to memory 904, display 916 (e.g., through a graphics processoror accelerator), and to high-speed expansion ports 910, which may acceptvarious expansion cards (not shown). In the implementation, low-speedcontroller 912 is coupled to storage device 906 and low-speed expansionport 914. The low-speed expansion port, which may include variouscommunication ports (e.g., USB, Bluetooth, Ethernet, wireless Ethernet)may be coupled to one or more input/output devices, such as a keyboard,a pointing device, a scanner, or a networking device such as a switch orrouter, e.g., through a network adapter.

The computing device 900 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 920, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 924. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 922. Alternatively, components from computing device 900 may becombined with other components in a mobile device (not shown), such asdevice 950. Each of such devices may contain one or more of computingdevice 900, 950, and an entire system may be made up of multiplecomputing devices 900, 950 communicating with each other.

Computing device 950 includes a processor 952, memory 964, aninput/output device such as a display 954, a communication interface966, and a transceiver 968, among other components. The device 950 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 952, 964,954, 966, and 968 are interconnected using various busses, and severalof the components may be mounted on a common motherboard or in othermanners as appropriate.

The processor 952 can process instructions for execution within thecomputing device 950, including instructions stored in the memory 964.The processor may also include separate analog and digital processors.The processor may provide, for example, for coordination of the othercomponents of the device 950, such as control of user interfaces,applications run by device 950, and wireless communication by device950.

Processor 952 may communicate with a user through control interface 958and display interface 956 coupled to the display 954. The display 954may be, for example, a TFT LCD display or an OLED display, or otherappropriate display technology. The display interface 956 may compriseappropriate circuitry for driving the display 954 to present graphicaland other information to a user. The control interface 958 may receivecommands from a user and convert them for submission to the processor952. In addition, an external interface 962 may be provided incommunication with processor 952, so as to enable near-areacommunication of device 950 with other devices. External interface 962may provide, for example, for wired communication (e.g., via a dockingprocedure) or for wireless communication (e.g., via Bluetooth or othersuch technologies).

The memory 964 stores information within the computing device 950. Inone implementation, the memory 964 is a computer-readable medium. In oneimplementation, the memory 964 is a volatile memory unit or units. Inanother implementation, the memory 964 is a non-volatile memory unit orunits. Expansion memory 974 may also be provided and connected to device950 through expansion interface 972, which may include, for example, aSIMM card interface. Such expansion memory 974 may provide extra storagespace for device 950, or may also store applications or otherinformation for device 950. Specifically, expansion memory 974 mayinclude instructions to carry out or supplement the processes describedabove, and may include secure information also. Thus, for example,expansion memory 974 may be provided as a security module for device950, and may be programmed with instructions that permit secure use ofdevice 950. In addition, secure applications may be provided via theSIMM cards, along with additional information, such as placingidentifying information on the SIMM card in a non-hackable manner.

The memory may include, for example, flash memory and/or MRAM memory, asdiscussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 964, expansionmemory 974, memory on processor 952, or a propagated signal.

Device 950 may communicate wirelessly through communication interface966, which may include digital signal processing circuitry asappropriate. Communication interface 966 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 968. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS receiver module 970 may provide additional wireless datato device 950, which may be used as appropriate by applications runningon device 950.

Device 950 may also communicate audibly using audio codec 960, which mayreceive spoken information from a user and convert it to usable digitalinformation. Audio codec 960 may likewise generate audible sound for auser, such as through a speaker, e.g., in a handset of device 950. Suchsound may include sound from voice telephone calls, may include recordedsound (e.g., voice messages, music files, etc.) and may also includesound generated by applications operating on device 950.

The computing device 950 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 980. It may also be implemented as part of asmartphone 982, personal digital assistant, or other similar mobiledevices.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium” or“computer-readable medium” refer to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,programmable logic devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems, devices andtechniques described here can be implemented on a computer having adisplay device (e.g., a CRT (cathode ray tube) or LCD (liquid crystaldisplay) monitor) for displaying information to the user and a keyboardand a pointing device (e.g., a mouse or a trackball), by which the usercan provide input to the computer. Other kinds of devices can be used toprovide for interaction with a user as well; for example, feedbackprovided to the user can be any form of sensory feedback (e.g., visualfeedback, auditory feedback, or tactile feedback), and input from theuser can be received in any form, including acoustic, speech, or tactileinput.

The systems, devices and techniques described here can be implemented ina computing system that includes a back-end component (e.g., a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front-end component (e.g., a client computerhaving a graphical user interface or a web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back-end, middleware, orfront-end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of implementations have been described. Nevertheless, it willbe understood that various modifications may be made without departingfrom the spirit and scope of the systems, devices, methods andtechniques described here. For example, various forms of the flows shownabove may be used, with steps re-ordered, added, or removed. It will beappreciated that any appropriate time interval may be used to make thedeterminations described above, and that the determinations may be madeusing any appropriate number of data points within the time interval.Accordingly, other implementations are within the scope of the followingclaims.

What is claimed is:
 1. A computer-implemented method, comprising: receiving, at a computer system, information that expresses interest by a user in one or more events; determining whether each of a plurality of different event categories have had a triggering occurrence that indicates presence of content for distribution to the user, the triggering occurrence being independent of input provided by the user; identifying a first category of the plurality of different event categories determined to have had a triggering occurrence and obtaining the content for the first category for distribution to the user; formatting the content for delivery to the user in a first format that is based on the first category that had a triggering occurrence; and providing the content in the first format and for review by the user.
 2. The computer-implemented method of claim 1, further comprising: identifying a second category of the plurality of different event categories determined to have had a triggering occurrence and obtaining the content for the second category for distribution to the user; formatting the content for delivery to the user in a second format that is based on the second category that had a triggering occurrence; and providing the content in the second format and for review by the user, wherein the first category is different than the second category, and wherein the first format is different than the second format.
 3. The computer-implemented method of claim 1, wherein the content is obtained and provided, for review by the user, in the first format at a time related to an event in the first category.
 4. The computer-implemented method of claim 1, further comprising correlating the information that expresses the interest by the user in one or more events with a triggering occurrence in one or more event categories.
 5. The computer-implemented method of claim 1, wherein formatting the content for delivery to the user comprises determining whether an event characterized by the first category is included in calendar information stored for the user.
 6. The computer-implemented method of claim 1, wherein the triggering occurrence comprises receiving GPS location-based data indicating a physical location for the user and the formatted content comprises a document detailing an upcoming event near the location.
 7. The computer-implemented method of claim 1, wherein the information comprises search requests related to the one or more events and the formatted content comprises promotional information for an entity in a geographic vicinity of the non-user specific activity.
 8. A computer-readable medium having instructions encoded thereon, which, when executed by a processor, cause the processor to perform operations comprising: receiving, at a computer system, information that expresses interest by a user in one or more events; determining whether each of a plurality of different event categories have had a triggering occurrence that indicates presence of content for distribution to the user, the triggering occurrence being independent of input provided by the user; identifying a first category of the plurality of different event categories determined to have had a triggering occurrence and obtaining the content for the first category for distribution to the user; formatting the content for delivery to the user in a first format that is based on the first category that had a triggering occurrence; and providing the content in the first format and for review by the user.
 9. The computer-readable medium of claim 8, further comprising: identifying a second category of the plurality of different event categories determined to have had a triggering occurrence and obtaining the content for the second category for distribution to the user; formatting the content for delivery to the user in a second format that is based on the second category that had a triggering occurrence; and providing the content in the second format and for review by the user, wherein the first category is different than the second category, and wherein the first format is different than the second format.
 10. The computer-readable medium of claim 8, wherein the content is obtained and provided, for review by the user, in the first format at a time related to an event in the first category.
 11. The computer-readable medium of claim 8, further comprising correlating the information that expresses the interest by the user in one or more events with a triggering occurrence in one or more event categories.
 12. The computer-readable medium of claim 8, wherein formatting the content for delivery to the user comprises determining whether an event characterized by the first category is included in calendar information stored for the user.
 13. The computer-readable medium of claim 8, wherein the triggering occurrence comprises receiving GPS location-based data indicating a physical location for the user and the formatted content comprises a document detailing an upcoming event near the location.
 14. The computer-readable medium of claim 8, wherein the information comprises search requests related to the one or more events and the formatted content comprises promotional information for an entity in a geographic vicinity of the non-user specific activity.
 15. A system comprising: one or more computers and one or more storage devices storing instructions that are operable, when executed by the one or more computers, to cause the one or more computers to perform operations comprising: receiving, at a computer system, information that expresses an interest by a user in one or more events; determining whether each of a plurality of different event categories have had a triggering occurrence that indicates presence of content for distribution to the user, the triggering occurrence being independent of input provided by the user; identifying a first category of the plurality of different event categories determined to have had a triggering occurrence and obtaining the content for the first category for distribution to the user; formatting the content for delivery to the user in a first format that is based on the first category that had a triggering occurrence; and providing the content in the first format and for review by the user.
 16. The system of claim 15, wherein the operations further comprise: identifying a second category of the plurality of different event categories determined to have had a triggering occurrence and obtaining the content for the second category for distribution to the user; formatting the content for delivery to the user in a second format that is based on the second category that had a triggering occurrence; and providing the content in the second format and for review by the user, wherein the first category is different than the second category, and wherein the first format is different than the second format.
 17. The system of claim 15, wherein the content is obtained and provided, for review by the user, in the first format at a time related to an event in the first category.
 18. The system of claim 15, wherein formatting the content for delivery to the user comprises determining whether an event characterized by the first category is included in calendar information stored for the user.
 19. The system of claim 15, wherein the triggering occurrence comprises receiving GPS location-based data indicating a physical location for the user and the formatted content comprises a document detailing an upcoming event near the location.
 20. The system of claim 15, wherein the information comprises search requests related to the one or more events and the formatted content comprises promotional information for an entity in a geographic vicinity of the non-user specific activity. 